18 research outputs found

    Automatic Optimizations for Stream-based Monitoring Languages

    Get PDF
    Runtime monitors that are specified in a stream-based monitoring language tend to be easier to understand, maintain, and reuse than those written in a standard programming language. Because of their formal semantics, such specification languages are also a natural choice for safety-critical applications. Unlike for standard programming languages, there is, however, so far very little support for automatic code optimization. In this paper, we present the first collection of code transformations for the stream-based monitoring language RTLola. We show that classic compiler optimizations, such as Sparse Conditional Constant Propagation and Common Subexpression Elimination, can be adapted to monitoring specifications. We also develop new transformations -- Pacing Type Refinement and Filter Refinement -- which exploit the specific modular structure of RTLola as well as the implementation freedom afforded by a declarative specification language. We demonstrate the significant impact of the code transformations on benchmarks from the monitoring of unmanned aircraft systems (UAS).Comment: 20th International Conference on Runtime Verification (2020

    Зміст та основні цілі стимулювання збуту на підприємстві

    Get PDF
    Стаття присвячена висвітленню сутності стимулювання підприємства, як важливої складової для забезпечення ефективного його функціонування, а також проаналізовано головні завдання, та основні переваги та недоліки заходів, які використовуються у системі стимулювання збуту. У статті розглянуто зміст стимулювання збуту продукції підприємства, його цілі та завдання. Виявлено, що стимулювання збуту ‒ це система короткострокових спонукальних заходів на тимчасовій або територіальній основі, що чинить вплив на трьох учасників ринку (споживачів, торгових посередників, торговий персонал), яка покликана стимулювати негайне здійснення покупки і прискорений збут продукції. Наведена характеристика сучасних засобів і прийомів стимулювання збуту. Розглянуто класифікацію стимулювання збуту продукції підприємства за виникненням і впливом на покупців. Дістали подальшого розвитку теоретичні положе ння стимулювання збуту, в тому числі визначення його основних напрямків.The article is devoted to highlighting the essence of stimulating the enterprise as an important component for ensuring its effective functioning, and also analyzed the main tasks and the main advantages and disadvantages of those used in the sales promotion system. The article deals with the content of sales’ promotion in the complex of product promotion, its goals and tasks. It is found that sales promotion is a system of short-term incentives on a temporary or territorial basis, affects three market part icipants (consumers, resellers, sales personnel), which is designed to stimulate immediate purchase and accelerated sales. The characteristic of modern means and methods of sales’ promotion is given. The classification of sales promotion in the work on occurrence and influence on buyers is described. The theoretical positions of sales’ promotion were furt her developed, the main directions of sales promotion were established

    Refactoring GrPPI:Generic Refactoring for Generic Parallelism in C++

    Get PDF
    Funding: EU Horizon 2020 project, TeamPlay (https://www.teamplay-xh2020.eu), Grant Number 779882, UK EPSRC Discovery, grant number EP/P020631/1, and Madrid Regional Government, CABAHLA-CM (ConvergenciA Big dAta-Hpc: de Los sensores a las Aplicaciones) Grant Number S2018/TCS-4423.The Generic Reusable Parallel Pattern Interface (GrPPI) is a very useful abstraction over different parallel pattern libraries, allowing the programmer to write generic patterned parallel code that can easily be compiled to different backends such as FastFlow, OpenMP, Intel TBB and C++ threads. However, rewriting legacy code to use GrPPI still involves code transformations that can be highly non-trivial, especially for programmers who are not experts in parallelism. This paper describes software refactorings to semi-automatically introduce instances of GrPPI patterns into sequential C++ code, as well as safety checking static analysis mechanisms which verify that introducing patterns into the code does not introduce concurrency-related bugs such as race conditions. We demonstrate the refactorings and safety-checking mechanisms on four simple benchmark applications, showing that we are able to obtain, with little effort, GrPPI-based parallel versions that accomplish good speedups (comparable to those of manually-produced parallel versions) using different pattern backends.Publisher PDFPeer reviewe

    A formally verified compiler back-end

    Get PDF
    This article describes the development and formal verification (proof of semantic preservation) of a compiler back-end from Cminor (a simple imperative intermediate language) to PowerPC assembly code, using the Coq proof assistant both for programming the compiler and for proving its correctness. Such a verified compiler is useful in the context of formal methods applied to the certification of critical software: the verification of the compiler guarantees that the safety properties proved on the source code hold for the executable compiled code as well

    Effectively Recognize Ad hoc Synchronizations with Static Analysis

    No full text

    Transforming flow information during code optimization for timing analysis

    Get PDF
    The steadily growing embedded-systems market comprises many application domains in which real-time constraints must be satisfied. To guarantee that these constraints are met, the analysis of the worst-case execution time (WCET) of software components is mandatory. In general WCET analysis needs additional control-flow information, which may be provided manually by the user or calculated automatically by program analysis. For flexibility and simplicity reasons it is desirable to specify the flow information at the same level at which the program is developed, i.e., at the source level. In contrast, to obtain precise WCET bounds the WCET analysis has to be performed at machine-code level. Mapping and transforming the flow information from the source-level down to the machine code, where flow information is used in the WCET analysis, is challenging, even more so if the compiler generates highly optimized code. In this article we present a method for transforming flow information from source code to machine code. To obtain a mapping that is safe and accurate, flow information is transformed in parallel to code transformations performed by an optimizing compiler. This mapping is not only useful for transforming manual code annotations but also if platform-independent flow information is automatically calculated at the source level. We show that our method can be applied to every type of semantics-preserving code transformation. The precision of this flow-information transformation allows its users to calculate tight WCET bounds.Peer reviewe
    corecore